跳到主要内容

在白鹭引擎中调用第三方 JavaScript 代码

在游戏开发过程中,往往需要介入一些第三方编写的 JavaScript 库。这些库一般会有三种来源:

  1. 游戏会运行在第三方提供的特殊容器中,容器已注入了特定的 JavaScript 接口。典型案例:微信小游戏平台接口
  2. 第三方提供了 JavaScript 代码,需要将这部分代码打包进游戏项目中。典型案例:渠道接入SDK
  3. 第三方将库提交到了 npm 包管理器中。典型案例:axios

针对这三种情况,白鹭分别提供了三种解决方案

  1. 编写 .d.ts 文件
  2. 编写 Egret Library
  3. 打包 npm library

我们将对这三种方式分别进行介绍

编写 .d.ts 文件​

由于第三方 JavaScript 代码与您游戏的 TypeScript 逻辑绝大多数情况下运行在同一个 JavaScript容器上下文中,所以您可以直接在 TypeScript 代码中调用第三方SDK的JavaScript 接口即可。只需要额外声明一个 .d.ts 文件,确保 TypeScirpt 编译器不会因此抛出异常即可。

以微信小游戏为例,您只需编写一个名为 wx.d.ts 的文件,如下即可:

declare  var wx:  any;

由于上述 wx 这个变量类型为 any ,开发者就可以在任意逻辑中直接调用 wx 中的任意方法,如果您希望进一步得到更友好的代码提示,您需要修改 wx.d.ts 文件,给出更明确的类型声明,具体的类型声明方式可以参见添加.d.ts 这篇文档

编写 Egret Library​

TODO

打包 npm library​

TODO